This invention relates to a system for monitoring the activities of a process controlled by a user.
According to a first aspect of the invention, there is provided a system for monitoring the activities of a process controlled by a user, the system comprising:
means defining a master profile of pairs of first and second codes, the first codes being codes corresponding to codes generated by user input to the process and the second codes being codes corresponding to the codes generated by the process in response to the user generated codes;
means arranged to compare a pair of user and process generated codes with the master profile to deduce whether the process generated code of that pair is recognized as being one of the second codes defined in the master profile;
means for establishing the context of the process generated code wherein in the case that the process generated code has not been recognized by the comparing means a false context state is established and, in the case in which a process generated code has been recognised by the comparing means, either a true context state is established if the recognised process generated code is deemed to have been produced in an appropriate context having regard to a correlation between the user generated input code and the first code of the master profile pair associated with the recognised process code, else a false context state is established;
means arranged to store in a user activity file a record comprising an activity code specific to each recognised process generated code and the associated context state determined by the context establishing means.
In a first embodiment of the first aspect of the invention, the system comprises means for changing the manner in which the process is influenceable by the user on the basis of the user activity file.
In a variation of the first embodiment of the first aspect of the invention, the system comprise means for changing the manner in which the process operates on the basis of the user activity file.
In a second embodiment of the first aspect of the invention, the system comprises means for analyzing the contents of the user activity file and means for writing data relating to the analyzed contents of the user activity file to a user profile file.
In a third embodiment of the first aspect of the invention, the system of the second embodiment comprises means for changing the manner in which the process operates on the basis of the user profile file.
In a variation of the third embodiment of the first aspect of the invention, the system of the second embodiment comprises means for changing the manner in which the process is influenceable by the user on the basis of the user profile file.
In a fourth embodiment of the first aspect of the invention, the system of the second or third embodiments comprises means for analyzing the contents of the user profile file and means for writing data relating to the analyzed contents of the user profile file to a process activity file.
In a fifth embodiment of the first aspect of the invention, the system of the fourth embodiment comprises means for changing the master profile on the basis of the process activity file, whereby the manner in which the user profile file analyzing means analyses user profile files is changed.
Further aspects of the invention are exemplified by the attached claims.
There are many applications in which embodiments of the invention may be used.
In a first group of applications, the monitoring system controls the interaction between a process consisting of or controlled by a computer program and human users of that process. The human users may be interfacing with the computer program via means typical for a human-machine interface such as keyboard and mouse. Alternatively, the human users may be interfacing with the computer via other input/output devices of the computer running the program, such as intelligent sensor units that form part of a machine control system, e.g. a flight simulator.
In a second group of applications, the monitoring system controls the interaction between a process consisting of or controlled by a computer program and another process consisting of or controlled by a another computer program. The other computer program may be running on the same computer, i.e. intra-computer process, or on another computer, i.e. inter-computer process.
The process might be one controlled by, or which is, a computer program. The user may for example be a person interacting with the computer program via one or more input devices of the computer performing the process, or another program running on the same computer or on a different computer.
In many automated processes, the process activities are carried out by a process controller in a manner which will depend upon instructions given from another party to the process controller. Moreover, in many instances, the instructions given from the other party to the process controller are given in response to prompts from the process controller, so that there is a two-way communication, i.e. interaction, between the process controller and the other party.
In a first example a computer is the process controller and controls a process taking account of input from a human acting as the user. The computer outputs data, such as selection options, to the user via the screen and the user inputs data to the computer, such as selection decisions, by mouse clicks on icons.
In this example, the process may comprise activities performed by a piece of applications software, such as a computer aided technical drawing package, and the process control may also be incorporated in the application software. The user interacts with the application software, the application software with the operating system and the operating system with the hardware of the computer. The user of the application software may be an expert, a novice or have specific weaknesses and strengths having regard to using the application software to its full capabilities. The user may for example be an expert at computer aided technical drawing, but unfamiliar with the particular drawing package. The system can establish from the process activities carried out by a specific user and the manner in which that user invokes those process activities what the competence and standard level of that user are and can control the process and influence the manner in which the process controller interacts with that user accordingly.
In a second example, a computer controls a process of data transmission to another computer via a data transmission line interconnecting the two computers, for example a network or internet connection. Alternatively, in this second example, the process may be data transfer within the same computer, for example between different application software programs via the operating system or between different hardware elements via the bus. If the one computer receives a request from the other computer, for example via the internet, to transfer a data file containing text, the computer that requests the file may already have a decoder for certain text file formats which may or may not include that of the text in the requested file. Even if the computer requesting the file does not have a decoder for the text file format of the requested file, it may have a decoder for another text file format that is also held by the computer from which downloading was requested. One or both of the computers, acting as a process controller, can have a user specific file relating to the other of the computers, acting as a user, and thus tailor the data communication to take account of their respective capabilities. The system can moreover serve to transfer additional data, such as a decoder, from one computer to the other if this is deemed to be worthwhile on the basis of an assessment of past and present activities. For example, if a user activity file of a website PC computer held in a mainframe computer indicates repeated downloading of graphics in bitmap form from the mainframe computer, the mainframe computer could decide to download relevant graphics languages to the website computer to increase data communication efficiency.
In a third example, a controller forms part of a process for controlling the lighting and heating in an office building having multiple zones. The controller may perform control according to monitoring of the switching states of light switches and the settings of thermostats within the building. The occupants of the different rooms will have different habits such as working hours, diligence in turning lights and heating off when leaving work, desired brightness levels and desired ambient temperature during work time. For example, a particular office worker may habitually set his air conditioning control to have his office relatively cold during spells of cold weather and relatively warm during warm weather, whereas another office worker may habitually always set his air conditioning control to have his office at around 20 degrees regardless of outside temperature and season. The controller can thus be responsive to user behaviour by monitoring to compile user activity profiles and other user specific profiles. Control can then be tailored accordingly and building supervisors can be provided with a record of anomalous activities.
In a fourth example, a controller forms part of a vehicle, e.g. an automotive vehicle or an aircraft perhaps having a fly-by-wire avionics system. The controller utilises sensors to monitor items such as brakes, throttle and other manually controllable parts of the vehicle and may inform the driver or pilot via a display of information such as instant fuel consumption or speed. Thus, at least some activities of the process involve interaction between the user and the process, since the effects on the process of the user""s input to the process controller are fed back to the user. The controller may control ignition timing, fuel injection, automatic gear change and braking in accordance with the nature of different drivers characterised by different reaction times, experience aggression etc. User specific profiles can thus be built up. The monitoring function can be used to provide information recording the use of the vehicle, which can then be used by mechanics when servicing the vehicle. The control function can be used while the vehicle is being driven to reduce emissions, increase braking efficiency etc.
In all these examples, the efficiency with which the activities of the process are carried out will depend on the capabilities or characteristics of the communicating parties and most especially the manner in which each party acts towards the other party. Thus, the process will receive input that will vary depending on the individual characteristics of a third party whom we shall call the user, the user in the four examples mentioned above being: the person running the software; one of the computers; the office workers; and the driver or pilot. The above-described applications of the invention monitor these activities and generate user specific activity profiles which can then be used for example: by a human system supervisor to assess process performance; by an automated system controller automatically to modify the process according to an assessment of the user concerned; and/or by an automated system controller automatically to modify the interaction between the process and the user concerned.
In examples in which the process being monitored by the process monitoring system is under software control by a process controlling program, a significant advantage of the process monitoring system as described herein is that it can be designed so that the only necessary point of connection between the process monitoring system and the process controlling program is the interface between the user and the process controlling software. That is, the process monitoring system can be designed so as to rely solely on monitoring software or machine codes generated by user activity and the direct response of the process controlling software to that user activity in the form of the codes generated by the process controlling software. Consequently, access to, and knowledge of, the process controlling software, such as access to the softwares executable files or data files and knowledge of their format, will not be required by the process monitoring system.
European patent application no. 89102855.7 and International patent application no. PCT/US91/05062 both disclose systems which monitor a user""s use of an application and offer flexible help accordingly. However these systems require access to the application software""s executable files.